In general, functional capabilities associated with hardware platforms and the associated machines continue to increase, in large part due to the advances in software and electronic control of these machines. When a machine, such as an automobile, earth moving machine, or even home electronics systems (e.g., computers and entertainment systems), is purchased there is usually several versions of software that may be sold with the machine. The software is usually sold as an upgrade to the basic system. Traditionally, once a machine has been sold, if the user wanted to purchase additional functionality, e.g., additional software functionality, they needed to physically go to the seller and purchase the desired software. Alternatively, the seller may come to them to install the desired software. Having to purchase after market software, obtain a physical copy of the software and download it to the machine may be a time consuming process and a process that suffers from logistic problems. For example, the user often does not realize there are compatabilty problems with the desired software until the software is purchased, loaded, and won't work properly. Some systems, such as the one disclosed in U.S. Patent Application No. 2002/0152400A1 disclose the ability to pre-load software onto a device when its sold, and then enable user requested functions from a remote location, at a later date. While this is an advancement over previous methods, there are still several issues that exist with enabling software from a remote location, such as security and authorization issues etc.
In addition, when a controller fails on a remote machine, current replacement processes again involve inefficient logistic processes that involve replacing the controller, then attempting to identify what software the controller had, and what software features were enabled etc. Loading the wrong software, or not enabling the appropriate software options may lead to wasted time and frustration when the machine does not operate appropriately.
In addition, some environments, such as a work site, may involve a distributed network of controllers associated with different machines performing different functions. These machines may need access to a particular software option to perform a particular task. However, purchasing rights to the software for each machine may be expensive, especially since not all the machines will need functionality at a given time. Current processes do not address this need.
The present disclosure is directed towards solving one or more of the problems set forth above.